DAY16:Josephus Survivor


Posted by birdbirdmurmur on 2023-07-29

題目連結:

Josephus Survivor

解法:

function josephusSurvivor(n, k) {
  if (n === 1) {
    return 1;
  } else {
    return (josephusSurvivor(n - 1, k) + k - 1) % n + 1;
  }
}

筆記:

這題有點複雜難XD
參考解答發現一部分的人使用遞迴(Recursive)的方式

遞迴過程函式會呼叫josephusSurvivor(n - 1, k)
這相當於在淘汰一人後的新圓圈中最後的位置。
將原本的第k位置變成了第1個位置k-1
對n取餘數確保位置在合理範圍(0~n-1)
最後加上1從位置變成數字


#javascript #Codewars







Related Posts

統一網頁支付介面:Payment Request API

統一網頁支付介面:Payment Request API

關於 ASUS AiMesh 架設三兩句

關於 ASUS AiMesh 架設三兩句

Web開發學習筆記10 — 預設參數、Spread Operator、Rest Operator、解構賦值、陣列方法的練習筆記

Web開發學習筆記10 — 預設參數、Spread Operator、Rest Operator、解構賦值、陣列方法的練習筆記


Comments